<?php

namespace Admin\Options;
use User\Options\ModuleOptions;

class AdminModuleOptions extends ModuleOptions implements AdminServiceOptionsInterface
{
    protected $roleEntityClass = 'Authorize\Entity\Role';

    protected $categoryEntityClass = 'Admin\Entity\Category\Category';
     /**
     * @var string
     */
    protected $loginRedirectAdminRoute = 'admin';
    
    protected $logoutRedirectAdminRoute = 'admin/user/login';
    
    /**
     * @var array
     */
    protected $authAdapters = array( 100 => 'Admin\Authentication\Adapter\Db' );
    
    /**
     * @var string
     */

    protected $roleTableName = 'user_role';
    protected $categoryTableName = 'categories';

    /**
     * @param string $roleEntityClass
     */
    public function setRoleEntityClass($roleEntityClass)
    {
        $this->roleEntityClass = $roleEntityClass;
    }

    /**
     * @return string
     */
    public function getRoleEntityClass()
    {
        return $this->roleEntityClass;
    }
    
     /**
     * set login redirect route
     *
     * @param string $loginRedirectRoute
     * @return ModuleOptions
     */
    public function setLoginRedirectRoute($loginRedirectRoute)
    {
        $this->loginRedirectAdminRoute = $loginRedirectRoute;
        return $this;
    }

    /**
     * get login redirect route
     *
     * @return string
     */
    public function getLoginRedirectAdminRoute()
    {
        return $this->loginRedirectAdminRoute;
    }
    
    /**
     * set logout redirect route
     *
     * @param string $logoutRedirectRoute
     * @return ModuleOptions
     */
    public function setLogoutRedirectAdminRoute($logoutRedirectRoute)
    {
        $this->logoutRedirectAdminRoute = $logoutRedirectRoute;
        return $this;
    }

    /**
     * get logout redirect route
     *
     * @return string
     */
    public function getLogoutRedirectAdminRoute()
    {
        return $this->logoutRedirectAdminRoute;
    }
    
    /**
     * @param string $roleTableName
     */
    public function setRoleTableName($roleTableName)
    {
        $this->roleTableName = $roleTableName;
    }

    /**
     * @return string
     */
    public function getRoleTableName()
    {
        return $this->roleTableName;
    }
    
    
    /**
     * set auth adapters
     *
     * @param array $authAdapterss
     * @return ModuleOptions
     */
    public function setAdminAuthAdapters($authAdapters)
    {
        $this->adminAuthAdapters = $authAdapters;
        return $this;
    }
    
     /**
     * get auth adapters
     *
     * @return array
     */
    public function getAdminAuthAdapters()
    {
        return $this->adminAuthAdapters;
    }

    public function getCategoryEntityClass()
    {
        return $this->categoryEntityClass;
    }

    public function setCategoryEntityClass($categoryEntityClass)
    {
        $this->categoryEntityClass = $categoryEntityClass;
        return $this;
    }

    /**
     * @param string $categoryTableName
     */
    public function setCategoryTableName($categoryTableName)
    {
        $this->categoryTableName = $categoryTableName;
    }

    /**
     * @return string
     */
    public function getCategoryTableName()
    {
        return $this->categoryTableName;
    }


} 